package com.ruoyi.crm.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商机对象 crm_order
 *
 * @author yanwenliang
 * @date 2024-10-23
 */
@Data
@TableName("crm_order")
public class CrmOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 商机id */
    @TableId(type = IdType.ASSIGN_ID)
    private String orderId;


    /** 商机订单名称 */
    @Excel(name = "商机订单名称")
    private String orderName;

    /** 客户ID */
    @Excel(name = "客户ID")
    private String customerId;

//    /** 订单金额 */
//    @Excel(name = "订单金额")
//    private BigDecimal amount;

    /** 协同人 */
    @Excel(name = "协同人")
    private String helpPerson;

    /** 沟通情况 */
    @Excel(name = "沟通情况")
    private String contactContent;

    /** 产品id */
    @Excel(name = "产品id")
    private String productId;

    private String userId;

    /** 预算 */
    @Excel(name = "预算")
    private BigDecimal budget;

    /** 项目进度 */
    @Excel(name = "项目进度")
    private String progess;

    /** 客户联系人 */
    @Excel(name = "客户联系人")
    private String contactPerson;

    /** 客户联系电话 */
    @Excel(name = "客户联系电话")
    private String clientPhone;

    /** 集成商 */
    @Excel(name = "集成商")
    private String cooperater;

    /** 集成商联系人 */
    @Excel(name = "集成商联系人")
    private String cooperaterPerson;

    /** 集成商联系电话 */
    @Excel(name = "集成商联系电话")
    private String cooperaterPhone;

    /** 项目计划 */
    @Excel(name = "项目计划")
    private String plan;

    /** 下次跟进时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下次跟进时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date nextFollowupTime;

    /** 预计下单时间（订单为续费是，为续费时间） */
    @Excel(name = "预计下单时间", readConverterExp = "订=单为续费是，为续费时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date planPurchaseTime;

    /** 预计下单金额（订单为续费是，为续费金额） */
    @Excel(name = "预计下单金额", readConverterExp = "订=单为续费是，为续费金额")
    private BigDecimal planAmount;

    /** 是否续费（0 否 1是） */
    @Excel(name = "是否续费", readConverterExp = "0=,否=,1=是")
    private String isRenewal;

    /** 续费到期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "续费到期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date renewalEndTime;

    /** 续费前商机id */
    @Excel(name = "续费前商机id")
    private String parentOrderId;

    /** 商机类型 */
    @Excel(name = "商机类型")
    private String orderType;

    /**
     * 项目归属
     */
    private String orderAscription;

    /** 删除标识（0 未删除 1 删除） */
    @TableLogic
    private String delFlag;

    /**
     * 提交状态
     */
    private String status;

    /**
     * 是否申请折扣标识（0 申请， 1 不申请）
     */
    private String isDiscount;

    /**
     * 客户名称
     */
    @TableField(exist = false)
    private String customerName;

    /**
     * 产品名称
     */
    @TableField(exist = false)
    private String productName;

    /**
     * 小组id
     */
    @TableField(exist = false)
    private String groupId;

    @TableField(exist = false)
    private String region;

    /**
     * 产品折扣申请
     */
    @TableField(exist = false)
    private CrmOrderProductDiscount crmOrderProductDiscount;

    /**
     * 下单时间区间
     */
    @TableField(exist = false)
    private List<Date> queryTime;
}
